لقد كنت أغمس أصابع قدمي في JSI وC مؤخرًا، ونتيجة لذلك، تمكنت من إنشاء حزمة صغيرة تسمى React-native-lz4. إنها مكتبة لضغط الملفات بسرعة في React Native باستخدام خوارزمية LZ4 المكتوبة بلغة C.
لا يزال الأمر تجريبيًا لأنني ما زلت أقوم بتحسين معالجة الأخطاء وتوسيع واجهة برمجة التطبيقات الخاصة بها ولكن يمكن استخدامها بالفعل (بحذر!)
الحزمة: https://github.com/mateoguzmana/react-native-lz4
يمكنك معرفة المزيد عن LZ4 على موقعه الإلكتروني: https://lz4.org/
تدعم الحزمة كلاً من البنية القديمة والجديدة، وتكشف حاليًا عن وظيفتين رئيسيتين لضغط وفك ضغط أي نوع من الملفات.
مثال أساسي:
import { compressFile, decompressFile } from 'react-native-lz4'; function onProgress(processedSize: number, totalSize: number) { // e.g. { processedSize: 50, totalSize: 100, progress: '50%' } console.log({ processedSize, totalSize, progress: `${Math.round((processedSize / totalSize) * 100)}%`, }); } const compressionResult = await compressFile( 'path/to/file', 'path/to/output', onProgress ); const decompressionResult = await decompressFile( 'path/to/file', 'path/to/output', onProgress ); console.log(compressionResult); // { success: true, message: 'File compressed successfully', originalSize: 100, finalSize: 50 } console.log(decompressionResult); // { success: true, message: 'File decompressed successfully', originalSize: 50, finalSize: 100 }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3